//C:7.4:lotto.cpp -- probabillity of winning
#include <iostream>
// Note: some implementations require double instead of long double
long double probabillity(unsigned numbers, unsigned picks);

int main(void)
{
    using namespace std;
    double total, choices;
    cout << "Enter the total number of choices on the game card and \n"
         "the number of picks allowed:\n";
    while((cin >> total >> choices) && choices <= total)
    {
        cout << "You have one chance in ";
        cout << probabillity(total, choices);    // compute the odds
        cout << " of winning.\n";                                                       
        cout << "Next two numbers (q to quit): ";
    }
    cout << "bye\n";
    return 0;
}

// the following function calculates the probabillity of picking picks
// numbers correctly from numbers choices
long double probabillity(unsigned numbers, unsigned picks)
{
    long double result = 1.0;   // here come some local variables
    long double n;
    unsigned p;

    for(n = numbers, p = picks; p > 0; n--, p--)
    {
        result = result * n / p;
    }

    return result;
}

